#ifndef ARRAY_H
#define ARRAY_H

#include <lampe/types.h>
#include <lampe/exception/OutOfBounds.h>

namespace lampe{

template <typename T,int count>
class Array{
private:
    T data[count];
	u32 _size;
public:
	Array(){
		_size=count;
	}

	~Array(){
	}

	u32 size(){
		return _size;
	}

	T operator [](u32 i) const{
		BOUNDS_TEST(i,count);
		return data[i];
	}

	T & operator [](u32 i){
		BOUNDS_TEST(i,count);
		return data[i];
	}
};

}//namespace lampe

#endif // ARRAY_H
